Enhance build process for web applications#1
Merged
Conversation
Contributor
dviejokfs
commented
Oct 26, 2025
- Added Bun installation step in the GitHub Actions workflow for the tunnel-client.
- Refactored build.rs to support building multiple web applications by parameterizing the webapp name.
- Improved error messages and logging for Bun installation and build processes.
- Updated paths to ensure correct handling of webapp directories.
- Added Bun installation step in the GitHub Actions workflow for the tunnel-client. - Refactored build.rs to support building multiple web applications by parameterizing the webapp name. - Improved error messages and logging for Bun installation and build processes. - Updated paths to ensure correct handling of webapp directories.
- Introduced .pre-commit-config.yaml to enforce coding standards. - Added hooks for YAML validation, trailing whitespace removal, end-of-file fixing, and typo detection. - Integrated Conventional Commits linter for commit message validation. - Included Rust formatting and linting tools (cargo fmt and cargo clippy) to ensure code quality.
- Updated .gitignore to include .vscode directory. - Modified .pre-commit-config.yaml to replace Rust formatting and linting tool from prek to doublify/pre-commit-rust. - Cleaned up comments in CLAUDE.md for better readability. - Ensured consistent formatting in stream.rs documentation. - Updated SVG assets in multiple web applications to ensure they end with a newline. - Ensured index.css imports tailwindcss correctly with a newline at the end.
- Updated release.yml to detect pre-release versions and adjust the `prerelease` flag accordingly. - Added a new Homebrew formula for the beta version of localup, allowing users to install pre-release versions. - Created detailed installation instructions for both stable and beta releases in the release notes. - Introduced a manual formula update script to streamline the process of updating Homebrew formulas after a release.
- Upgraded `rustls` and `tokio-rustls` versions in `Cargo.toml` to improve security and performance. - Updated `Cargo.lock` to reflect the new dependency versions. - Revised the installation instructions in `README.md` and added a comprehensive `INSTALLATION.md` guide for easier setup across platforms. - Enhanced the installation script to support automatic detection of OS and architecture, improving user experience.
…nel-cli and tunnel-exit-node - Integrated rustls crypto provider in the main function of both tunnel-cli and tunnel-exit-node to enable QUIC/TLS functionality. - Ensured proper installation of the default crypto provider for enhanced security in network communications.
- Added initialization of the rustls crypto provider in the test for self-signed certificates to ensure compatibility with rustls. - This change is necessary for proper certificate handling in QUIC/TLS contexts.
…lease workflow and installation scripts - Updated the GitHub Actions workflow to build and package the new localup and localup-relay binaries. - Modified installation scripts to reflect the new binary names and updated installation instructions accordingly. - Ensured consistency across all platforms for the new CLI commands and packaging formats.
…and add build scripts for versioning - Renamed the CLI commands from tunnel and tunnel-exit-node to localup and localup-relay for consistency. - Updated installation scripts and documentation to reflect the new binary names across all platforms. - Introduced build scripts to capture git commit hash, tag, and build timestamp for better versioning in the binaries. - Added chrono as a build dependency to facilitate timestamp generation.
…up-relay - Added two installation scripts: `install-local.sh` for interactive installation and `install-local-quick.sh` for quick installation without prompts. - Updated README.md to reflect new installation options and improved instructions for building and installing localup and localup-relay binaries. - Removed outdated .github/README.md file as it is no longer needed.
- Changed the installed binary name from `tunnel-cli` to `tunnel` in both localup and localup-head formulas for consistency with recent naming conventions. - Updated comments to clarify the source of binary names in the installation process.
- Updated `tokio-tungstenite` to version 0.28.0 and added new dependencies including `system-configuration` and `windows-registry`. - Introduced integration tests for transparent HTTP/HTTPS streaming, WebSocket, and long-lived connections in `transparent_streaming_test.rs`. - Added end-to-end tests for transparent streaming through the tunnel in `transparent_tunnel_test.rs`, covering HTTP and WebSocket scenarios. - Enhanced `Cargo.toml` for the `tunnel-client` crate with new development dependencies to support testing.
- Deleted HOMEBREW.md and related setup documentation to streamline repository structure. - Updated README.md to reflect changes in Homebrew tap naming conventions. - Adjusted release workflow to accommodate new tap structure for Localup installation.
- Added custom relay configuration files to .gitignore to prevent accidental inclusion in version control. - Updated Cargo.lock to include new versions of dependencies, specifically `dirs`, `redox_users`, and `serde_yaml`, ensuring compatibility and improved functionality. - Introduced new modules in the tunnel-cli crate for daemon management and service installation, enhancing the overall architecture and usability of the application.
- Enhanced the `connect` method to support automatic relay selection based on the configured exit node type. - Introduced `RelayDiscovery` for initializing and selecting relays, with logging for both custom and auto-selected relays. - Added error handling for relay discovery initialization and selection processes, improving robustness in connection management.
- Introduced a new `BUILD-CUSTOM.md` file detailing the process for building LocalUp with custom relay configurations, including quick start instructions and examples. - Updated `.gitignore` to include additional files related to private keys and local examples to prevent accidental inclusion in version control. - Enhanced `Cargo.toml` and `Cargo.lock` to reflect new dependencies and modules for improved functionality. - Added new relay configuration files (`relays.example.yaml`, `relays.yaml`) to provide users with templates for custom setups. - Created `DAEMON_IMPLEMENTATION_SUMMARY.md` and `RELAY-USAGE.md` for comprehensive documentation on daemon mode and relay usage.
…just dependencies - Removed several outdated packages from Cargo.lock, including `alloc-no-stdlib`, `async-broadcast`, and `brotli`, to streamline the dependency tree. - Updated Cargo.toml to reflect the removal of the `tauri-tunnel-app` and `localup-saas-example` members, simplifying the project structure. - Ensured compatibility with the latest versions of remaining dependencies, enhancing overall project stability.
…onnectivity - Added a new `localup-agent` crate to facilitate reverse tunnel connections, allowing clients to access services behind NAT/firewalls. - Updated `Cargo.toml` and `Cargo.lock` to include new dependencies such as `hostname` and `ipnetwork`, enhancing functionality. - Introduced new protocol messages for agent registration and reverse tunnel requests in `tunnel-proto`. - Created comprehensive documentation for reverse tunnel usage and configuration, including a user guide and implementation status. - Enhanced the `tunnel-client` to support reverse tunnel connections, enabling clients to connect to remote services through registered agents. - Implemented agent registry management in the control plane to track connected agents and their capabilities.
- Refactored GitHub Actions CI workflow to separate web application build and testing jobs, improving clarity and organization. - Added `tunnel-auth` as a new dependency in `Cargo.lock` to support JWT authentication for agents. - Enhanced caching strategies for Rust dependencies to optimize build times. - Removed deprecated steps related to the Rust toolchain installation and Cargo caching, streamlining the CI process.
- Added Bun installation step to the CI workflow for building the dashboard webapp. - Updated release workflow to package the new `localup-agent-server`, including it in the generated archives for Linux, macOS, and Windows. - Adjusted documentation to reflect the inclusion of `localup-agent-server` binaries in the release artifacts.
…ries The release workflow was failing because cargo build --release --target wasn't building binaries from workspace member crates. Changed to explicitly specify: - localup (CLI) - localup-agent-server (Agent server) - tunnel-exit-node (produces localup-relay binary) This ensures all three binaries are available for stripping and archiving across all platforms (Windows, Linux AMD64/ARM64, macOS Intel/ARM).
- Integrated Bun installation into the CI workflow to facilitate building the dashboard webapp. - Added commands to navigate to the dashboard directory, install dependencies, and run the build process.
- Introduced `build.rs` files in both the root and `localup-agent-server` crates to retrieve and set environment variables for the current git commit hash, git tag, and build timestamp. - Updated `Cargo.toml` for both crates to include `chrono` as a build dependency. - Modified the main entry points to display version information, including the git tag, commit hash, and build time in the CLI help output.
- Deleted various files including `.gitignore`, `bun.lock`, `components.json`, `index.html`, `package.json`, `README.md`, and several TypeScript and Rust source files. - Cleaned up the project structure by removing obsolete configurations and assets, streamlining the application for future development.
- Deleted unused documentation files including `BUILD-CUSTOM.md`, `DAEMON_IMPLEMENTATION_SUMMARY.md`, and `RELAY-USAGE.md` to streamline the project. - Updated `Cargo.toml` and `Cargo.lock` to reflect the addition of new crates and dependencies, including `localup-agent`, `localup-api`, and `localup-auth`. - Introduced new modules and files for the `localup-agent` crate, enhancing functionality with agent management and connection handling. - Improved CI workflow by integrating build scripts and ensuring all necessary binaries are included in release artifacts.
- Added a new documentation section in `README.md` outlining various guides and examples for users. - Removed the obsolete `daemon-mode.md` and `INSTALLATION.md` files to streamline documentation. - Updated `e2e_acceptance.rs` to improve code clarity by removing unused imports and adjusting metric logging. - Improved support section in `README.md` to provide clearer links for users seeking assistance.
- Added new dependencies including `axum`, `localup-lib`, `rustls`, and `tokio-rustls` to improve TLS/SNI functionality. - Introduced example files for `https_relay`, `tcp_relay`, and `tls_relay` to demonstrate usage of the new features. - Updated `Cargo.toml` and `Cargo.lock` to reflect the changes in dependencies and project structure. - Enhanced documentation in `CLAUDE.md` and `README.md` to provide clearer guidelines on the new features and examples. - Implemented SNI routing capabilities in the TLS server, allowing for multiple TLS services on the same port.
- Introduced a new API endpoint `/api/metrics/{id}/replay` to replay captured HTTP requests using their unique metric ID.
- Implemented `handle_api_replay_by_id` function in the metrics server to handle the replay logic.
- Updated `MetricsService` with a `replay_by_id` method to retrieve and replay the stored metric.
- Enhanced the dashboard to include a replay button for HTTP requests, displaying the result of the replay operation.
- Updated generated SDK and types to support the new replay functionality.
Signed-off-by: David Viejo <dviejo@kungfusoftware.es>
- Added `custom_domain` field to `ProtocolConfig` for HTTP and HTTPS protocols, allowing users to specify a full custom domain. - Updated CLI arguments and command structures to accommodate the new `custom_domain` option, which takes precedence over the `subdomain` when both are provided. - Refactored related functions to ensure proper handling of custom domains in tunnel creation and management. - Enhanced tests to validate the new custom domain functionality and its precedence over subdomains. Signed-off-by: David Viejo <dviejo@kungfusoftware.es>
…tabase - Added `cert_pem` and `key_pem` fields to the `custom_domain` model for direct storage of certificate and private key in PEM format. - Updated `upload_custom_domain` and `complete_challenge` functions to save PEM content to the database. - Implemented migration to add new columns to the `custom_domains` table. - Enhanced `HttpsServer` to load certificates from database content, falling back to filesystem if necessary. Signed-off-by: David Viejo <dviejo@kungfusoftware.es>
- Renamed variables for clarity in the `TunnelConnection` implementation, changing `body_data` to `chunked_data` to better reflect its purpose. - Introduced a new method `decode_chunked_body` to handle the decoding of chunked transfer encoding, extracting the actual content from the chunked data format. - Enhanced logging to provide detailed information about the decoded body size and the original chunked data size. Signed-off-by: David Viejo <dviejo@kungfusoftware.es>
- Added a step in the GitHub Actions workflow to extract the version from the Git tag and set it as an output variable. - Updated the `build.rs` file to prioritize the `LOCALUP_VERSION` environment variable for versioning, falling back to the latest Git tag or the Cargo.toml version if not set. - Ensured the build process can detect changes in the `LOCALUP_VERSION` environment variable to trigger rebuilds. Signed-off-by: David Viejo <dviejo@kungfusoftware.es>
…a sharing in the dashboard
What more features can be added to the tunnel for the open source to improve DX for the users using the localup?
- Updated Makefile to include new targets for managing custom domains: `gen-cert-custom-domain`, `register-custom-domain`, `list-custom-domains`, and `tunnel-custom-domain`. - Enhanced CLI to support tunnel management commands for starting, stopping, and reloading tunnels with custom domain configurations. - Added functionality to validate custom domains in the daemon, ensuring they are registered and active before allowing tunnel creation. - Improved project configuration handling to support custom domains, including updates to the `ProjectConfig` structure and related methods. This update significantly improves the user experience for managing custom domains within the localup environment.
I want to be able to give the users a way to install an app and have a daemon running automatically. it must work for windows/linux/macos. the UI must be shadcn + tailwidncss. and the crates from localup must be used as a library from the tauri application. First plan everything you need to do, then I will approve the plan.
- Added settings management functionality, allowing users to configure application settings such as autostart, start minimized, auto-connect tunnels, capture traffic, and clear on close. - Introduced new API commands for managing tunnels, including create, update, delete, start, and stop operations. - Implemented a system tray for the application to manage tunnels and provide quick access to the app. - Enhanced the dashboard and settings UI to reflect the new features, including a Toaster component for notifications. - Updated package dependencies to include new libraries for UI components and state management. This update significantly improves user experience by providing a comprehensive settings interface and robust tunnel management capabilities. Signed-off-by: David Viejo <dviejo@kungfusoftware.es>
- Introduced a new daemon service that runs independently of the Tauri app, managing tunnels in the background. - Added commands for the Tauri app to interact with the daemon, including starting, stopping, and deleting tunnels. - Enhanced the UI to support detailed tunnel views and metrics, allowing users to monitor tunnel status and performance. - Updated the database schema to include supported protocols for relays, enabling more flexible tunnel configurations. - Improved the overall architecture to facilitate better communication between the app and the daemon, ensuring a seamless user experience. This update significantly enhances the application's capabilities for managing tunnels and improves user interaction with the daemon service. Signed-off-by: David Viejo <dviejo@kungfusoftware.es>
- Introduced a new GitHub Actions workflow to build the Tauri desktop application for macOS, Linux, and Windows platforms, ensuring a streamlined build process across environments. - Added support for building and bundling the daemon binary for different architectures, facilitating easier deployment. - Enhanced the metrics handling by implementing pagination for tunnel metrics, allowing users to retrieve metrics in a more manageable format. - Updated the API to support real-time metrics subscriptions, enabling the frontend to receive live updates on tunnel performance. - Improved the UI components to incorporate collapsible sections for better organization of settings and logs. This update significantly enhances the build process and user experience for managing tunnels and monitoring their metrics in the LocalUp application.
…dling - Updated the IPC module to support both Unix domain sockets and named pipes for Windows, allowing seamless communication between the daemon and CLI across platforms. - Implemented platform-specific socket path retrieval and connection handling for both Unix and Windows environments. - Added functionality to read and write IPC port information on Windows, ensuring proper connection management. - Enhanced IPC client and server implementations to handle multiple requests and responses efficiently. - Updated tests to cover new IPC functionalities and ensure robust cross-platform operation. This update significantly improves the IPC capabilities of the LocalUp application, enhancing user experience and reliability.
- Removed the installation and build steps for Bun in the CI workflow, simplifying the process. - Added steps to download webapp artifacts in both CI and release workflows, ensuring consistent access to built assets. - Enhanced the logging of IPC server endpoint in the daemon for better clarity and debugging. - Introduced a new method in the IPC server to provide a cross-platform compatible endpoint string. This update improves the efficiency of the CI process and enhances the IPC logging for better diagnostics.
…m support - Added separate verification steps for webapp artifacts in Unix and Windows environments, ensuring consistent checks across platforms. - Implemented Unix shell commands for artifact verification and PowerShell commands for Windows, improving compatibility and clarity in the CI process. This update enhances the reliability of artifact checks during the CI workflow, accommodating both Unix and Windows users.
- Eliminated the Windows-specific build steps for the daemon binary in the GitHub Actions workflow, streamlining the process to focus on macOS and Linux targets. - Updated artifact handling to reflect the removal of Windows installers, ensuring clarity in the release process. This change simplifies the CI workflow and reduces complexity by focusing on Unix-based systems.
…port - Introduced new functionality to manage TCP connections, including pagination support for retrieving connection details. - Updated the CI workflow to include Windows-specific dependencies and build steps, ensuring compatibility across platforms. - Refactored the Tauri application to utilize TCP sockets for IPC communication, replacing Unix domain sockets for improved cross-platform functionality. - Enhanced the HTTP proxy implementation for better request handling and metrics capture. This update significantly improves the application's capabilities for managing TCP connections and ensures a seamless experience across different operating systems.
- Removed outdated dependencies ( and ) from and updated to include and for HTTP/3 support. - Modified the crate to enable with the feature for improved compatibility. - Refactored the server implementation to enhance WebSocket handling and added detailed logging for HTTP/1.1 and HTTP/2 requests. - Updated example usage in to demonstrate HTTP/2 support and provide testing instructions. This update improves the application's capabilities for handling modern HTTP protocols and enhances the overall user experience.
…ease process - Eliminated Windows-specific build steps and artifact handling from the GitHub Actions workflow, focusing on Unix-based systems. - Updated release steps to create and manage only Unix-compatible archives, enhancing clarity and efficiency in the CI process. - Simplified the overall workflow by removing unnecessary complexity related to Windows builds. This change improves the maintainability of the CI workflow and ensures a more straightforward release process for Unix platforms.
- Removed unnecessary dependency installation for libappindicator3-dev. - Enhanced the build process by verifying the existence of the daemon binary before building the Tauri app. - Streamlined artifact collection by dynamically determining the bundle directory for macOS and Linux targets. - Improved logging for better visibility during the build and release process. These changes improve the reliability and clarity of the CI workflow for building the Tauri desktop application.
- Removed the daemon binary build steps from the CI workflow, simplifying the build process. - Updated the Tauri configuration to eliminate the external binary reference for the daemon. - Streamlined the build steps for the Tauri app, enhancing clarity and efficiency. These changes improve the maintainability of the CI workflow and focus on the essential build steps for the Tauri desktop application.
- Added steps to import Apple certificates for code signing on macOS, improving the build process for Tauri applications. - Introduced upstream status tracking in the tunnel management system, allowing for real-time monitoring of service availability based on recent request metrics. - Updated the TunnelDetail component to display upstream status and recent error counts, enhancing user feedback on service health. - Refactored the CI workflow to streamline the build process and ensure proper artifact creation for macOS. These changes improve the reliability and user experience of the Tauri application while enhancing the CI workflow for better maintainability.
commit 3b281b3291e384d17ddf5b4b24d4f94723f17902
Author: David Viejo <dviejo@kungfusoftware.es>
Date: Thu Jan 8 18:14:56 2026 +0100
All Rust code compiles and passes clippy with no warnings. The build is successful.
I want to be able to set up custom wildcard domain tunnels by provisioning a custom domain and when doing http tunnel specifying the wildcard domain just provisioned make tests and also test let's encrypt integration with a mock server using testcontianers
- Added computation of upstream status from recent metrics in the list_tunnels function. - Included upstream status, recent upstream errors, and request counts in the TunnelResponse structure for improved monitoring and user feedback. These changes enhance the visibility of tunnel health and performance metrics within the application.
- Added Tauri updater signing keys to the CI workflow for secure updates. - Updated the release process to include signatures for DMG and AppImage artifacts, improving security and integrity. - Created a latest.json file for the auto-updater, providing versioning and download links for different platforms. - Modified Tauri configuration to enable the updater plugin and specify the endpoint for update checks. These changes enhance the security and usability of the Tauri application by ensuring safe updates and providing a structured way to manage release information.
- Updated macOS code signing configuration to skip signing if not set, improving flexibility in the build process. - Modified the release job to only require CLI binaries, making desktop artifacts optional. - Added checks to conditionally create the latest.json file for the auto-updater based on the presence of desktop artifacts. These changes streamline the release process and enhance the handling of code signing and artifact management in the Tauri application.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.